C语言 switch case `请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/09/22 11:29:01
问题:Q<=100000,提成0.1,100000<Q<=200000,提成0.075,200000<Q<=400000,提成0.05,400000<Q<=600000,提成0.003,600000<Q<=1000000,提成0.015,Q>1000000,提成0.001,
请问怎么用switch case做

程序如下:
#include<stdio.h>
int main()
{
long i;
int m;
float a,a1,a2,a4,a6,a10;
a1=100000*0.1;
a2=a1+100000*0.075;
a4=a2+200000*0.05;
a6=a4+200000*0.03;
a10=a6+400000*0.015;
scanf("%ld",&i);
m=i/100000;
if(m>10)m=10;
switch(m)
{case 0:a=i*0.1;break;
case 1:a=a1+(i-100000)*0.075;break;
case 2:
case 3:a=a2+(i-200000)*0.05;break;
case 4:
case 5:a=a4+(i-200000)*0.03;break;
case 6:
case 7:
case 8:
case 9:a=a6+(i-600000)*0.015;break;
case 10:a=a10+(i-1000000)*0.01;
}
printf("%f\n",a);
getch();
return 0;
}

为什么一定要用switch做?直接使用if...else if...else就可以了。
另外的说明参照http://zhidao.baidu.com/question/62044817.html吧。